<article>
	<h1><?php echo $GLOBALS['title'] ?></h1>
	<p>PHP 的真正力量来自它的函数：它拥有超过 1000 个内建的函数。</p>
	<p>函数（function）是一段完成指定任务的已命名代码，函数可以遵照  给它的一组值或参数完成任务，并且可能返回一个值。使用函数可以  节省编译时间，因为无论调用多少次，函数只需被编译一次。</p>
	<h3>优点</h3>
	<ul>
		<li>控制程序设计的复杂性 </li><p></p>
		<li>提高软件的可靠性</li><p></p>
		<li>提高软件的开发效率</li><p></p>
		<li>提高软件的可维护性 </li><p></p>
		<li>提高程序的重用性</li><p></p>
	</ul>
	<h2><a>用户定义函数</a></h2>
	<h3>语法</h3>
	<pre><code><?php echo htmlspecialchars('
<?php
	function 函数名称（参数1，参数2 …）{  
		程序内容叙述；
		return 返回值； //如需函数有返回值时使用;
	}
?>') ?></code></pre>
	<h3>函数的使用</h3>
	<p>函数名称(参数1,参数2 …);</p>
	<p>$返回值变量 = 函数名称(参数1,参数2);</p>
	<h3>自定义函数的名</h3>
	<p>它是函数在程序代码中的识别名称，函数名可以是以字母或下划线  开头后跟零个或多个字母、下划线和数字的任何字符串。函数名不  区分大小写。命名函数时不可使用已声明的函数，或PHP内建的函  数名称。</p>
	<h3>参数</h3>
	<p>所谓的参数就是用来把数值由函数外部传入函数体中，并用来加以  运算处理。参数之间用“ ，”号隔开。当函数不需要任何数值传入  时，可以省略参数。</p>
	<h3>返回值：</h3>
	<p>当调用函数时需要它返回一些数值，那么就要函数体中用return语  句实现。格式如下：</p>
	<pre><code><?php echo htmlspecialchars('
<?php
	function sum(num1, num2){
		return num1+num2;
	}
	$i = sum(10,20);
?>') ?></code></pre>
	<h2><a>变量的作用域</a></h2>
	<h3>变量的能见度</h3>
	<p>所谓变量的能见度，意指变量在程序中的可作用范围。当一个变量  执行赋值动作后，会随着声明局部的差异，而有不同的作用范围。  大致上来说变量会依据声明的局部分为下列两种：局部变量和全局  变量</p>
	<h3>局部变量</h3>
	<p>在函数之中声明的变量就是局部变量，并且该变量只有在函数范围之中  才能加以使用。如果其它程序局部需要调用使用该变量值时，必须透过
「return」指令，来将其传回至主程序区块以作后续处理。
</p>
	<h3>全局变量</h3>
	<p>在函数范围之外声明的变量为全局变量，在函数内无法直接使用全局变量，函  数要使用全局变量，必须要利用global引入。</p>
	<h4>实例</h4>
	<pre><code><?php echo htmlspecialchars('
<?php
	$xbs="学并思";  
	function p() {
		global $xbs; //利用 global 引入全局变量
		echo $xbs;
	}  
	p();
?>') ?></code></pre>
	<h3>静态变量</h3>
	<p>PHP支持声明函数变量为静态的(static)。一个静态变量在所有对该函数的  调用之间共享，并且仅在脚本的执行期间函数第一次被调用时被初始化。要声明函数变量为静态的用关键字static。通常，静态变量的第一次使用
时赋予一个初始值。</p>
	<h3>变量函数</h3>
	<p>PHP 支持变量函数的概念。这意味着如果一个变量名后有圆括号，  PHP 将寻找该变量的值同名的函数，并且将尝试执行它。除了别的  事情以外，这个可以被用于实现回调函数，函数表等等。</p>
	<h3>递归调用</h3>
	<p>所谓的函数递归调用，就是函数可以在其声明的执行中调用  执行自己。</p>
	<p>函数递归调用最大的好处在于可以精简程序中繁杂重复调用程序，  并且能以这种特性来执行一些较为复杂的运算动作。</p>
	<h2><a>include 和 require 语句</a></h2>
	<p>通过 include 或 require 语句，可以将 PHP 文件的内容插入另一个 PHP 文件（在服务器执行它之前）。</p>
	<p>include （或 require）语句会获取指定文件中存在的所有文本/代码/标记，并复制到使用 include 语句的文件中。</p>
	<p><code>include 和 require 语句是相同的，除了错误处理方面：</code></p>
	<ul>
		<li>require 会生成致命错误（E_COMPILE_ERROR）并停止脚本</li><p></p>
		<li>include 只生成警告（E_WARNING），并且脚本会继续</li><p></p>
	</ul>
	<h2><a>include_once()和require_once()函数</a></h2>
	<p>和<code>include()</code>语句及<code>require()</code>类似，区别是如果该文件中的代码已  经被包括了，则不会再次包括。</p>
	<p>这两个函数用于在脚本执行期间同一个文件有可能被包括超过一次  的情况下，以避免函数重定义，变量重新赋值等问题。</p>
	<h3>作业</h3>
	<blockquote>
	<p>创建一个自定义函数文件，自定义一个跟var_dump类型的函数，并在其它脚本中使用</p>
	</blockquote>
</article>